package com.zanglikun.apacheCommonUtil.apacheCommonCollections4;

import java.util.*;

/**
 * @author : zanglikun
 * @date : 2025/10/31 13:39
 * @desc : Copyright © zanglikun.com
 * 因为没有CollectionUtils 无一些方法，还是使用Jdk8自带的Collections吧！
 */
public class JdkCollections {
    public static void main(String[] args) {

        List<String> fruits = Arrays.asList("apple", "banana", "apple", "orange");

        // 去重操作
        Set<String> uniqueFruits = new LinkedHashSet<>(fruits);

        // 查找最值
        Collections.max(Arrays.asList(5, 2, 8, 1));  // 查找最大值
        Collections.min(Arrays.asList(5, 2, 8, 1));  // 查找最小值

        // 排序操作
        Collections.sort(new ArrayList<>(fruits));    // 升序排序
        // 1. 按字符串长度排序
        Collections.sort(new ArrayList<>(fruits), Comparator.comparing(String::length));
        // 2. 按字母顺序排序（默认）
        Collections.sort(new ArrayList<>(fruits), Comparator.comparing(s -> s));

        Collections.reverse(new ArrayList<>(fruits)); // 反转列表
        Collections.shuffle(new ArrayList<>(fruits)); // 随机打乱

        // 填充和替换
        Collections.fill(new ArrayList<>(fruits), "default"); // 用指定值填充列表
        Collections.replaceAll(fruits, "apple", "pear");      // 替换所有匹配元素

        // 查找操作
        Collections.frequency(fruits, "apple");       // 统计元素出现频率
        Collections.binarySearch(Arrays.asList(1, 2, 3, 4), 3); // 二分查找

    }
}
